package com.juzi.file.recursion;

import java.io.File;
import java.util.Scanner;

/**
 * 找文件 D盘下的 WeChat.exe
 */
public class RecursionDemo {
    public static void main(String[] args) {

        System.out.println("请输入您想查询的目录以及文件名");
        Scanner s = new Scanner(System.in);
        String dir = s.next();
        String fileName = s.next();
        findFile(new File(dir),fileName);

//        findFile(new File("C:/"), "WeChat.exe");
    }

    /**
     * 搜索某个目录下的全部文件，找到想要的文件
     *
     * @param dir      被搜索的文件
     * @param fileName 目标名称
     */
    public static void findFile(File dir, String fileName) {
        //判断dir是不是文件夹
        if (dir != null && dir.isDirectory()) {
            //找
            //提取当前文件夹下的一级文件对象
            File[] files = dir.listFiles();
            //判断是否存在一级文件夹，存在则遍历
            if (files != null && files.length > 0) {
                for (File file : files) {
                    //判断当前一级文件夹是文件还是文件夹
                    if (file.isFile()) {
                        //是不是要找的，是就输出
                        if (file.getName().contains(fileName)) {
                            System.out.println("找到了" + file.getAbsolutePath());
                        }
                    } else {
                        //是文件夹,继续
                        findFile(file, fileName);
                    }
                }
            }
        } else {
            System.out.println("当前不是文件夹，不支持");
        }
    }
}
